<?php
  class CONEXAO
  {
/*A seguir se encontram os paramatros que s�o usados para fazer a conex�o com o Postgre*/
          private $user = "root";
          private $password = "";
          private $host = "localhost";
          private $database = "bolsas";
                  
/*Essa variavel guardar� as consultas que ser�o feitas no banco*/
          private $query = "";
/*Essa variavel guardar� uma variavel de conex�o*/
            private $link = "";         
public function __construct() 
        {
/*Ao chamar o contrutor a conex�o j� � estabelecida*/
                
        }
/*Esse m�todo � o responsavel por fazer a conex�o*/
        public function Conecta()
        {
/*O atributo link quarda a conex�o estabelecida*/
                $this->link = mysql_connect($this->host,$this->user,$this->password);
                if (!$this->link)
                {
                        die("Problema na Conex�o com o Banco de Dados");
                }
                elseif (!mysql_select_db($this->database,$this->link))
                {
                        die("Problema na Conex�o com o Banco de Dados");
                }
                
        }
/*Esse m�todo encerra a conex�o*/
public function Desconecta()
        {
                return mysql_close($this->link);
        }
/*Esse m�todo Executa comando sem retorno de dados(insert,delete ou update)*/
public function Executa($comando)
{
$this->query = $comando;
$sql = mysql_query($this->query,$this->link)
or die(mysql_error($this->link));
}
/*Esse m�todo � o responsavel por retornar dados para a aplica��o*/
public function Consulta($consulta)
        {
        $this->query = $consulta;
                if ($resultado = mysql_query($this->query,$this->link))
                {
                        return $resultado;
                } else {
                        return 0;
                }
        }

public function contaRegistros($tabela){
        $valor = $this->Consulta("select count(*) from $tabela");
        if($valor != 0){
        $result = mysql_fetch_assoc($valor);

        return $result['count(*)'];
        }
        else{
        return 0;
        }
}

public function contaRegistrosValor($tabela, $busca, $valor) {
        $qtd = $this->Consulta("select count(*) from $tabela where ".$busca."=$valor");
        if($qtd != 0){
                $result = mysql_fetch_assoc($qtd);
        
                return $result['count(*)'];
        }
        else{
                return 0;
        }
}

public function maxId($tabela){
        $valor = $this->Consulta("select max(id) max from $tabela");
        if($valor != 0){
        $result = mysql_fetch_assoc($valor);
        
        if($result['max']!=null){
        return $result['max'];
        }
        else{
        return 0;
        }
        }
        else{
        return null;
        }
}

public function grav($consulta){
return $this->getResultAsVector($consulta);
}

public function getResultAsVector($consulta){
        
        $arrayRetorno = array();

        $busca = $this->Consulta($consulta);

                if($busca != 0){

                        while($result = mysql_fetch_assoc($busca)){
                
                        $arrayRetorno[] = $result;
                        
                        }

                return $arrayRetorno;

                }

                else{

                return null;

                }
                }
                
                //Fun��o respons�vel por criar select html vindos do banco de dados
public function showSelectHtmlDB($tabela,$campoUnico,$campo,$selecionado="",$nome="",$restricaoSQL="",$atributos=""){
                //caso n�o seja informado o nome o select ter� o nome da tabela
                if($nome==""){
                $nome=$tabela;
                }
                
                //Busca
                $select = "select $campoUnico,$campo from $tabela $restricaoSQL";
                //Pega resultado
                $busca = $this->getResultAsVector($select);
                //Inicia cria��o do conteudo
                $selectHTML ="";
                $selectHTML .= "\n<select $atributos name='$nome' id='$nome'>\n";
                $selectHTML .= "<option value=''>Selecione...</option>\n";
                
                //Percorre todos os resultador
                foreach($busca as $value){
                        //caso se queira preselecionar uma op��o
                        
                        if($value[$campoUnico]==$selecionado){
                        $selectHTML .= "<option selected='selected' value='".$value[$campoUnico]."'>".$value[$campo]."</option>\n";
                        }
                        else{
                        $selectHTML .= "<option value='".$value[$campoUnico]."'>".$value[$campo]."</option>\n";
                        }
                }
                $selectHTML .= "</select>\n";
                
                return $selectHTML;
                }
                
                public function funcaoTrans($idElemento,$tabela,$campo){
                if($idElemento!=0 && $idElemento!="" && $idElemento!=null){
                $this->Conecta();
                $valor = $this->getResultAsVector("select $campo from $tabela where id = $idElemento");
                $this->Desconecta();
                if($valor[0][$campo]!='')
                return $valor[0][$campo];
                else
                return 'valor n�o encontrado';
                }
                else{
                return "n�o existe";
                }
}

public function showCheckBoxGroupHtmlDB($tabelaRelacao,$tabelaAlvo,$campoUnico,$campoMostrado,$nome="",$restricaoSQL="",$atributos=""){
                //caso n�o seja informado o nome o select ter� o nome da tabela
                if($nome==""){
                $nome=$tabelaAlvo;
                }
                
                
                //Busca
                $select = "select $campoUnico,$campoMostrado from $tabelaAlvo $restricaoSQL";
                
                //pega itens da tabela alvo
                $this->Conecta();
                $busca = $this->getResultAsVector($select);
                $this->Desconecta();
                $HTML ="";
                foreach($busca as $value){
                $HTML .="<input type='checkbox' id='".$nome.$value[$campoUnico]."' name='".$nome."[".$value[$campoUnico]."]'> ".$value[$campoMostrado]." <br/>\n";
                }
                
                
                

                return $HTML;
                }
                
public function pegaAttrRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados){

        $busca = $this->pegaArrayRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados);
        
                $HTML ="";
                if(count($busca)){
                foreach($busca as $value){
                
                $HTML .=$value[$camposMostrados]."<br/>\n";
                
                }
                }
                else{
                $HTML = "Nenhum resultado encontrado";
                }
                

                return $HTML;
}
public function pegaArrayRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados){

if(is_array($camposMostrados)){
        $campos = "";
        foreach($camposMostrados as $valor){
        $campos .= "t1.".$camposMostrados.",";
        }
        $ordem = "t1.".$camposMostrados[0];
        $campos = substr($campos, 0, -1);

}
else{
$ordem = "t1.".$camposMostrados;
$campos = "t1.".$camposMostrados;
}
                                
                //Busca
                $select = "select $campos from 
                $tbOrigem t1,
                $tbRel t2 
                where t1.$idOrigem = t2.$campoOrigem 
                and t2.$campoBusca = $idBuscado
                order by $ordem
                ;";
                //echo $select;
                //pega itens da tabela alvo
                $this->Conecta();
                $busca = $this->getResultAsVector($select);
                $this->Desconecta();

                return $busca;
                
}       


}
  ?>
